package es.ucm.fdi.xtremeaudio.modelo.utils;

import java.io.File;
import java.io.FilenameFilter;

/**
 * <ul>
 * <li><b>Proyecto:</b> XtremeAudio</li>
 * <li><b>Grupo:</b> 7 <i>(4&deg;B)</i></li>
 * <li><b>Asignatura:</b> Ingenier&iacute;a del Software</li>
 * <li><b>Curso:</b> 2010/2011</li>
 * <li><b>Centro:</b> Universidad Complutense de Madrid</li>
 * </ul>
 * 
 * <b>Filtro</b> implementa {@link FilenameFilter}, de manera que un directorio
 * s&oacute;lo acepte una lista de extensiones de archivo determinada.
 * 
 * @author &Aacute;lvaro G&oacute;mez Porris
 * @author Elena Hern&aacute;ndez Delgado
 * @author Mar&iacute;a Trinidad Mart&iacute;n Campos
 * @author Mois&eacute;s Mart&iacute;nez Montes
 * @author Mat&iacute;as Salinero Delgado
 * 
 * @version %I%, %G%
 * 
 * @since 1.0
 */
public class Filtro implements FilenameFilter {

	private String[] exts;

	/**
	 * Constructora
	 * 
	 * @param exts
	 *            La lista de extensiones de archivo aceptadas.
	 */
	public Filtro(String[] exts) {
		this.exts = exts;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
	 */
	@Override
	public boolean accept(File dir, String name) {
		for (int i = 0; i < exts.length; i++) {
			String ext = name.substring(name.lastIndexOf('.') + 1);
			if (ext.equalsIgnoreCase(exts[i])) {
				return true;
			}
		}
		return false;
	}

}